《嵌入式系统 – 玩转ART-Pi开发板》第2章 ART-Pi开发环境搭建 (Keil+env)

RT-Thread官方网站: https://www.rt-thread.org/

开发环境:
RT-Thread版本:4.0.3
操作系统:Windows10
Keil版本:V5.30
开发板MCU:STM32H750XB

2.1准备工作

在电脑上装好 git,软件包管理功能需要 git 的支持。git 的下载地址为 https://git-scm.com/downloads ,根据向导正确安装 git,并将 git 添加到系统环境变量。
注意在工作环境中,所有的路径都不可以有中文字符或者空格。

2.1.1 Env工具安装

Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。

主要特性:

 menuconfig 图形化配置界面,交互性好,操作逻辑强;
 丰富的文字帮助说明,配置无需查阅文档;
 使用灵活,自动处理依赖,功能开关彻底;
 自动生成 rtconfig.h,无需手动修改;
 使用 scons 工具生成工程,提供编译环境,操作简单;
 提供多种软件包,模块化软件包耦合关联少,可维护性好;
 软件包可在线下载,软件包持续集成,包可靠性高;

Env 工具包含了 RT-Thread 源代码开发编译环境和软件包管理系统。从 RT-Thread 官网下载 Env 工具。

Env 下载地址

下载完成后,打开 Env 控制,RT-Thread 软件包环境主要以命令行控制台为主,同时以字符型界面来进行辅助,使得尽量减少修改配置文件的方式即可搭建好 RT-Thread 开发环境的方式。 打开 Env 控制台有两种方式:

方法一:点击 Env 目录下可执行文件
进入 Env 目录,可以运行本目录下的 env.exe,如果打开失败可以尝试使用 env.bat。

DzklnK.png

打开env的界面如下:

DzAcVO.png

方法二:在文件夹中通过右键菜单打开 Env 控制台
Env 目录下有一张 Add_Env_To_Right-click_Menu.png(添加 Env 至右键菜单.png) 的图片,如下:

DzAXGj.png

根据图片上的步骤操作,就可以在任意文件夹下通过右键菜单来启动 Env 控制台。效果如下:

DzEpLV.png

【注意】因为需要设置 Env 进程的环境变量,第一次启动可能会出现杀毒软件误报的情况,如果遇到了 杀毒软件误报 ,允许 Env 相关程序运行,然后将相关程序添加至白名单即可。
Env就安装好了,很简单。

2.1.2下载源码

ART-Pi SDK源码在 https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi 地址,点击链接找到下图的位置,将其下载下来。

DzEVzR.png

可以在线下载,也可使用Git下载 RT-Thread 源码,使用命令:

$git clone https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi.git

下载源码,进入源码目录:

DzEMdO.png

下表是该目录的简单说明。

目录名 描述
debug QSPI FLASH 下载算法等
components RT-Thread 的各个组件目录
documents 一些说明文件,如电路图,文档,图片以及 datasheets 等
libraries STM32H7 固件库,通用外设驱动,rt_ota 固件库,wlan 固件库等
projects 示例工程文件夹,包含出厂程序,网关程序等
rt-thread RT-Thread 内核的源文件
tools ART-Pi wifi 固件,BT 固件,rbl 打包工具等
RealThread_STMH750-ART-Pi 描述 ART-Pi 的硬件信息

附上gitee下载地址

2.2使用ART-Pi编译和运行 RT-Thread

第一个例子还是使用点灯的实例。先看看笔者使用的开发板的LED硬件电路图。

DzENOP.png

2.2.1选择工程

这个例子是RT-Thread已经做好的,我们直接用就行。

DzEwTS.png

值得注意的是,我们选择工程是应用程序。

项目框架主要目录及文件的说明如下表所示:

文件 / 目录 描述
applications 用户应用代码目录
drivers 或 board RT-Thread 提供的底层驱动/板级相关的移植
Libraries 芯片官网下载的固件库
rt-thread RT-Thread 源代码
Kconfig menuconfig 使用的文件
project.ewww 用户使用的 IAR 工程文件
project.uvprojx 用户使用的 MDK 工程文件
template. uvprojx MDK 工程模板文件
SConscript SCons 配置工具使用的文件
SConstruct SCons 配置工具使用的文件
README.md BSP 说明文件
rtconfig.h BSP 配置头文件

注意:此命令从 RT-Thread 3.1.0 正式版才开始支持。

下图为根据自己使用的调试工具设置对应的调试选项,相关配置修改完成后就可以关闭模板工程。笔者使用的是ST-Link。

DzEH61.png

【注意】源代码和头文件路径的添加不建议直接修改工程模板,后面会介绍使用 Scons 工具往工程添加源代码及头文件路径。

2.2.2使用 menuconfig配置和裁剪 RT-Thread

每个 BSP 下的工程都有默认的配置,比如系统内核支持的最大线程优先级、系统时钟频率、使用的设备驱动、控制台使用的串口等。RT-Thread 操作系统具有高度的可裁剪性,用户可以根据自己的需求使用 Env 工具进行配置和裁剪。

在 BSP 目录下打开 Env,首先进入工程目录,如:sdk-bsp-stm32h750-realthread-artpi \projects\art_pi_blink_led,如图所示以管理员身份打开 PowerShell:

DzEXTO.png

依次输入如下三个命令:

#cmd
#mklink /D rt-thread ..\..\rt-thread
#mklink /D libraries ..\..\libraries

DzExte.png

然后在使用 menuconfig 命令打开配置界面。menuconfig 常用快捷键如图所示:

DzV91A.png

还可以使能在线软件包,如下图所示,使能了 mqtt 相关的软件包。

DzVKcn.png

2.2.3生成MDK工程

选择软件包后需要使用 pkgs –update 命令下载软件包,然后使用scons –target=mdk5 命令或者 scons –target=iar 命令生成 MDK 或者 IAR 工程。

#scons --target=mdk5

打开新生成的 MDK 工程 project.uvprojx ,可以看到我们选择的 paho mqtt 相关的软件包源文件已经被添加到了工程中。工程对应的芯片型号也是前文基于工程模板选择的芯片型号。

【注1】如果我们要使用 menuconfig 命令来配置,则需要检查 art_pi_blink_led 工程根目录下的 Kconfig 文件中的相关路径是否正确,否则会报错导致打不开配置面板。

【注2】软件更新
下载 :如果软件包在本地已被选中,但是未下载,此时输入:pkgs –update ,该软件包自动下载;
更新 :如果选中的软件包在服务器端有更新,并且版本号选择的是 latest 。此时输入: pkgs –update ,该软件包将会在本地进行更新;
删除 :某个软件包如果无需使用,需要先在 menuconfig 中取消其的选中状态,然后再执行: pkgs –update 。此时本地已下载但未被选中的软件包将会被删除。

【注3】
如果大家直接修改 MDK 工程文件 project.uvprojx 或者 IAR 的工程文件 project.ewww 添加了自己的代码,或者修改了工程的一些基本配置,生成的新工程会覆盖之前对工程文件 project 的修改。

2.2.4编译 RT-Thread固件

接下来就是编译工程,生成目标代码。

Env 中携带了 Python & scons 环境,只需在相应bsp目录中运行 scons 命令即可使用默认的 ARM_GCC 工具链编译 bsp。输入 scons 命令编译工程:

DzV1BV.png

编译完成会有如下信息:

DzVYh4.png

rtthread.bin就是生成的可执行文件。

DzVU39.md.png

==【注】Env工具支持Linux的基本指令。==

当然我们也可以使用keil或者IAR编译,前提是安装有KEIL或者IAR,笔者安装了KEIL,因此直接使用KEIL编译。

DzVBB6.png

值得注意的是,我们在调试代码时,需要跟踪代码,在MDK 中需要设置 Browse Information 跟踪代码,设置好后记得重新编译,但是勾选后编译比较慢,请耐心等待一会。

DzVTUS.png

2.2.5使用STM32CubeProgrammer烧写 RT-Thread固件

下面介绍STM32CubeProgrammer烧录固件到开发板的过程。

1.连接板子STlink,并将STlink连接到电脑。

2.打开STM32CubeProgrammer,默认配置即可。

DzVq3j.png

如果连接正常会识别设备号,点击“connect”即可进行连接。

DzVvD0.png

连接成功如下:

DzZGrt.png

打开一个bin或者hex文件,然后点击“download”。

DzZdPg.png

等待下载完成即可。

DzZTqx.png

【注】如果STlink版本过低,是无法使用的,可使用ST-LinkUpgrade进行固件升级。

2.2.6实验现象

烧写成功后复位。即可看到D2亮灭。

接下来我们使用串口终端进行调试,本文使用终端软件 Xshell、PuTTY 等工具接收工程控制台对应串口发送的数据,电脑右键→属性→设备管理器→端口(COM 和 LPT),即可查看串口对应的 COM 号,本文为 COM4。打开 Xshell按照下图配置,波特率一般配置为 115200。

DzZXJe.png

Related posts

Leave a Comment